<?php
class Entrega extends AppModel {
	var $name = 'Entrega';
	
	var $validate = array('dataentrega' => array('notempty' => array('rule' => array('notempty'),
																	'message' => 'Campo de preenchimento obrigatório.')),
						  'hora' => array('notempty' => array('rule' => array('notempty'),
																	'message' => 'Campo de preenchimento obrigatório.')),
						  'recebedor' => array('notempty' => array('rule' => array('notempty'),
																	'message' => 'Campo de preenchimento obrigatório.',
																	'last' => true),
												'maxLength' => array('rule' => array('maxLength', 150), 
																	 	 'message' => 'Insira no máximo 150 caracteres.')),
						  'valorreceber' => array('notempty' => array('rule' => array('notempty'),
																	'message' => 'Campo de preenchimento obrigatório.'))
	);
	
	// As associações abaixo foram criadas com todas as chaves possíveis, então é possível remover as que não são necessárias

	var $belongsTo = array(
		'Ordemservico' => array(
			'className' => 'Ordemservico',
			'foreignKey' => 'ordemservico_id',
			'conditions' => '',
			'fields' => '',
			'order' => ''
		)/*,
		'Status' => array(
			'className' => 'Status',
			'foreignKey' => 'status_id',
			'conditions' => '',
			'fields' => '',
			'order' => ''
		)*/
	);
	
	function paginate($conditions, $fields, $order, $limit, $page = 1, $recursive = null, $extra = array()) {    
		$this->Ordemservico->unbindModel(array('belongsTo' => array('Produto'), 'hasMany' => array('Laudotecnico', 'Pagamento', 'Entrega'), 'hasAndBelongsToMany' => array('Peca', 'Servico', 'Status')));
		$this->Ordemservico->Pessoa->unbindModel(array('hasMany' => array('Laudotecnico', 'Usuario', 'Ordemservico')));// => array('conditions'=>array('Pessoa.municipio_ids = Municipio.id')))));
		$this->Ordemservico->Pessoa->Municipio->unbindModel(array('belongsTo' => array('Estado'), 'hasMany' => array('Pessoa')));
		$this->Ordemservico->bindModel(array('hasAndBelongsToMany' => array('Status' => array('order' => array('OrdemservicosStatus.id desc'), 'limit' => 1))));
    	//$this->bindModel(array('hasAndBelongsToMany' => array('Pessoa' => array('conditions' => array('PessoasProcesso.funcaotipo_id' => 2)))));
    		
		//$this->bindModel(array('belongsTo' => array('Pessoa' => array('conditions' => array('"Entrega"."ordemservico_id" = "Ordemservico"."id"','"Ordemservico"."pessoa_id" = "Pessoa"."id"')))));
		//$this->Entrega->Ordemservico->bindModel(array('belongsTo' => array('Pessoa' => array('foreignKey'=>false, 'conditions'=>array('Ordemservico.pessoa_id = Pessoa.id')))), false);
		//$this->Leader->bindModel(        array('hasMany' => array(                'Principle' => array(                    'className' => 'Principle'                )            )        )    );     
		return $this->find('all', compact('conditions', 'fields', 'order', 'limit', 'page', 'recursive', 'group'));
	}
	
	function afterDataFilter($query, $options) {
		/*
		$query['joins'] = array(
				//array('table' => 'ordemservicos',
					//	'alias' => 'Ordemservico',
						//'type' => 'RIGHT',
						//'conditions' => array(
							//	'Ordemservico.id = Entrega.ordemservico_id')),
				array('table' => 'pessoas',
						'alias' => 'Pessoa',
						'type' => 'RIGHT',
						'conditions' => array(
								'Ordemservico.pessoa_id = Pessoa.id'))
				);
		*/
		foreach( $query['conditions'] as $k => $v ) {
			
			if ( strpos($k, 'Entrega.nome') !== false) {
				unset ($query['conditions'][$k]);
				$new_key =  str_replace("Entrega", "Pessoa", $k);
				$query['conditions'][$new_key] = $v;
			}
		  	if ( strpos($k, 'Entrega.id') !== false ) {
		  		unset ($query['conditions'][$k]);
		  		$new_key =  str_replace("Entrega", "Ordemservico", $k);
				$query['conditions'][$new_key] = $v;
		  	}
		  	if ( strpos($k, 'Entrega.dataentrega') !== false ) {
		  		$data = explode('-', trim($v, '%'));
				$data1 = $data[2].'/'.$data[1].'/'.$data[0];
				$query['conditions'][$k] = $data1;
		  	}
		  	if ( strpos($k, 'Entrega.municipio_id') !== false ) {
		  		unset ($query['conditions'][$k]);
		  		$new_key =  str_replace("Entrega", "Pessoa", $k);
				$query['conditions'][$new_key] = $v;
		  	}

		}
		//echo '<pre>'; print_r($query);
		return $query;
	}
	/*
	function paginateCount($conditions = null, $recursive = 0, $extra = array()) {
		$this->recursive = $recursive;    
		return count($results);
	}
	*/
}
?>